/**   
 * 项目名：五位一体化工安全信息平台
 * 日期：    2019-12-06 09:51:29  
 * Copyright (c) 2015- joysuch-版权所有     
 */

package com.joysuch.wwyt.bp.service;

import java.util.List;
import java.util.Map;

import com.joysuch.wwyt.bp.bean.BpRegulationDocumentTypeAddBean;
import com.joysuch.wwyt.bp.bean.BpRegulationDocumentTypeEditBean;
import com.joysuch.wwyt.bp.bean.BpRegulationDocumentTypeListBean;
import com.joysuch.wwyt.bp.entity.BpRegulationDocumentType;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface BpRegulationDocumentTypeService {

    public void add(BpRegulationDocumentTypeAddBean regDocTypeAdd) throws Exception;

    void update(BpRegulationDocumentTypeEditBean regDocTypeEdit) throws Exception;

    Page<BpRegulationDocumentType> findByPage(Pageable page, String docCode);

    void delete(Long id);

    BpRegulationDocumentType findById(Long id);

    /**
     * 获取所有文档类型列表（按文档数降序排序）
     */
    List<BpRegulationDocumentTypeListBean> findAll(String docCode);

    /**
     * 更新指定文档类型的文档数
     * 
     * @param id
     *            指定文档类型 ID
     * @param isUp
     *            是否增加（true:增加；false:减少）
     */
    void documentCountOption(Long id, boolean isUp);

    /**
     * 检查文档类型名称是否有重复（新增时用）
     * 
     * @param name
     *            待新增的文档类型名称
     * @return 返回值：true:有重复；false:没有重复
     */
    boolean checkName(String name, String docCode);

    /**
     * 批量保存文档类型（新增、修改、删除）
     * 
     * @param docTypeList
     *            待操作的数组
     */
    void save(List<Map<String, Object>> docTypeList, String docCode);

    /**
     * 更新文档类型参数
     * 
     * @param id
     */
    void updateTypeDocumentCount(Long id);

    List<Long> getTypeIdByDocCode(String docCode);
}
